Dynamic determination of data facets

ABSTRACT

Documents and data are analyzed to determine one or more data facets. The documents, data and other information contained therein may be presented according to statistically-determined groupings based on the data facets.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No.12/353,565 filed Jan. 14, 2009, which claims priority to and thebenefits of U.S. provisional patent application Ser. No. 61/022,001,entitled “Dynamic Determination Of Data Facets” and filed Jan. 18, 2008,the entire disclosure of which is incorporated herein by reference.

FIELD OF THE INVENTION

The invention relates generally to techniques for data search andretrieval, and more specifically, to the determination of parameters forclassification, organization, presentation and retrieval of data.

BACKGROUND

Data presented to consumers of electronic information is often providedin pure “list” form—that is, as a one-dimensional listing in response toa query. Although much effort goes into determining the contents of thelist, the ordering of the results and even the visual presentation ofindividual items, the consumer must still have some knowledge of thesubject matter being searched to make the results meaningful. Attemptsto provide general classifications (early implementations of searchengines such as Yahoo!, for example) often become outdated, overlyburdensome or, even worse, irrelevant.

In an attempt to help consumers direct their searches, many websites(typically those selling electronics, automobiles, books, etc.)categorize their products and associate each product with one or more ofthese categories. As a result, the data is semi-structured, meaningthere are certain data elements that are common to all the products, andthe values of these elements can be used to classify and select subsetsof the products. One example can be seen on many consumer-electronicswebsites that sell computers. It is common to classify computers aseither notebooks or desktops, by price (e.g., <$1000, between $1000 and$2000, and >$2000), screen size, processing power, weight and/orprojected use (business, personal, gaming, graphical design). Each ofthese categories is referred to as a “facet” or “dimension” that can beused to assist the consumer in narrowing down his search using knowndata elements prior to presenting the results of a search query.

While facet-based searching provides a significant improvement overconventional query/result methods, it is not without its drawbacks. Inparticular, current techniques for implementing faceted-based searchrequire a significant amount of work to determine the facets long beforea website is implemented. Likewise, it is difficult to change the facetsas the underlying data and queries evolve without disrupting ormodifying the functionality of the search application that acts on thedata.

What is needed, therefore, is a method and supporting systems foranalyzing data and automatically determining data facets for use assearch categories.

SUMMARY OF THE INVENTION

Embodiments of the invention provide methods and technicalimplementations of systems for gathering and assessing large amounts ofdata to identify data facets that can be used to classify data and helpusers narrow search queries. Assessing the data may include reviewingstructured and/or semi-structured data that is typically tagged with aproperty, as well as reviewing query logs (both submitted queries andquery results). Probabilistic techniques are preferably used to select“good” facets (e.g., those that segment the data into a well-distributedset of groups) while maintaining a balance between the number of facetsand the number of strata within each facet. Because the facets mayinclude discrete values, continuous numeric values (either evenlydistributed or skewed) and/or hierarchical values, embodiments of theinvention also facilitate determining optimal ranges and groupings ofthe facets. White lists and black lists may also be used to ensure thata particular field is either used or avoided.

In one aspect, a method for dynamically determining data facets includesreceiving a dataset of information that is organized into a plurality offields (which may be structured, semi-structured, and/or unstructured).Each field has values associated with it for each information element,and the information is analyzed to determine distribution statistics forthe fields. Based on the statistics, fields are selected as data facetsthat may be used to categorize the dataset and facilitate execution ofsearch queries against the dataset. For example, the facets can improvethe user experience by being presented as links labeled with a specificterm to limit (or refine) the search, or a link (labeled, e.g., “(removePrice restriction)”) that broadens the search parameters.

In some embodiments, query logs generated in response to queriessubmitted against the dataset may be incorporated into the analysis suchthat the distribution statistics reflect these previous queries. Asubset of the dataset may be identified and used to represent thedataset as a whole, in which case the analysis is limited set to theinformation contained in the subset. The information may be stored in adocument repository, database, search repository or other form ofphysical and/or virtual storage. The method may also include theprocessing of a search query, in which information is retrieved from thedataset based on a correlation between components of the search queryand the data facets. In some cases, the facets may then be ranked. Theranking may be based on the distribution statistics, query logs, orother attributes of the fields and used to present information from thedataset such that the information is grouped and ordered by the rankedfacets.

In some implementations, the data facets may be incorporated into sourcecode (e.g., XML, HTML or other structured markup language) of anapplication, and the presentation of that application then changes basedon the newly identified or modified data facets. The data facets mayalso include item groupings, which may be other facts or, in some casessub-categories. The groupings may depend, for example, on a statisticaldistribution of documents and/or data. The groupings may be linear(e.g., of equal range), logarithmic, or, in some cases based on dataclusters.

In another aspect, a system for dynamically determining data facetsincludes a data repository for storing information to be searched,wherein the information is organized into fields and the fields haveassociated values. The system also includes a facet recommendationengine for (i) analyzing the information to determine distributionstatistics for the fields, and (ii) based on the statistics, selectingfields as data facets to be used to categorize the dataset.

In an other aspect the instructions implement and/or performing themethods described in the preceding paragraphs. In particular, thefunctionality of a method of the present invention may be embedded on acomputer-readable medium, such as, but not limited to, a floppy disk, ahard disk, an optical disk, a magnetic tape, a PROM, an EPROM, CD-ROM,or DVD-ROM or downloaded from a server. The functionality of thetechniques may be embedded on the computer-readable medium in any numberof computer-readable instructions, or languages such as, for example,FORTRAN, PASCAL, C, C++, Java, PERL, C #, Tcl, BASIC and assemblylanguage. Further, the computer-readable instructions may, for example,be written in a script, macro, or functionally embedded in commerciallyavailable software (such as, e.g., EXCEL or VISUAL BASIC).

Other aspects and advantages of the invention will become apparent fromthe following drawings, detailed description, and claims, all of whichillustrate the principles of the invention, by way of example only.

DESCRIPTION OF THE DRAWINGS

In the drawings, like reference characters generally refer to the sameparts throughout the different views. Also, the drawings are notnecessarily to scale, emphasis instead generally being placed uponillustrating the principles of the invention.

FIG. 1 is a screen-shot from a web-based storefront illustrating the useof data facets to group products, which may be implemented using variousembodiments of the invention.

FIG. 2 is a flow chart depicting a process for automatically discoveringdata facets in accordance with an embodiment of the invention.

FIG. 3 illustrates an example of an XML listing of facets and facetvalues.

FIG. 4 schematically depicts a system for automatically discovering datafacets in accordance with an embodiment of the invention.

DETAILED DESCRIPTION

Consumer websites often facilitate product searching using data facets.Conventional methods of implementing data-faceted search require manualanalysis and selection of the data facets based on known, fieldedproperties that exist in the data. Referring to FIG. 1, for example, aweb page 100 a collection of laptop computers available at a retailstore and organized by five data facets 110. Specifically, the availablelaptops are grouped according to processor type, screen size, proposeduse, price and manufacturer, such that visitors to the webpage cannarrow their searches for a particular product meeting certain criteria.Furthermore, each data facet includes not only values (e.g., groupings)120 for each facet 110, but the number of items 130 that meet thatparticular criteria. Visitors select a grouping 120 based on individualpreferences, and the selection is sent to an underlying search enginewhich applies the values as filter criteria in a subsequent query thatreturns a list of products matching the criteria.

Conventional techniques for determining and presenting facets ofstructured or unstructured data involve significant manual effort.Typically, technicians review product descriptions, metadata, searchlogs and other information to select a handful of aggregate groupings touse as selection facets. In practice, once these data facets areselected, they are hard-coded into web page designs and data structures,which makes expansion and/or modification of the data facets difficultand time consuming. In certain environments (e.g., real-time newsstories, sports, financial markets, etc.) the data facets may changemany times throughout a day, in which case manual changes to facet listsis futile.

In contrast to the manual approach described above, embodiments of theinvention facilitate the analysis of a set of documents and/or datarecords (from a database, search engine index, and/or any otherdocument/data repository, collectively referred to as a “dataset”) andthe automated selection and recommendation of a set of fields to be usedas data facets. Generally, the technique can be implemented in twodifferent ways—either offline, where the dataset is analyzed but theresults do not immediately affect the application supported by thedataset, or online, where the results automatically influence thepresentation of data facets in real time. In the latter implementation,a facet-finder recommendation engine provides the data fields to awebsite configuration tool, thereby creating an updated user interfacethat presents the products and categories to users. In some embodiments,a feedback loop provides query results and usage statistics based onpreviously selected facets as input into the analysis step forcontinuous improvement.

FIG. 2 illustrates a process 200 for determining optimal or near-optimalfacets based on an underlying dataset. Initially, a query or set ofqueries is identified (STEP 210) that represents a particular user groupor selection criteria to narrow the set of documents being identified.In some implementations, a subset of the dataset may be identified andused, for purposes of facet identification, as a representation of theentire dataset. Certain documents of the dataset may, for example, beidentified as more important (based on date submitted, length, author,frequency of use, user feedback, etc.) and used either exclusivelyduring the analysis step, or weighted such that they have a greaterinfluence on term distributions and frequencies. In such cases, theprocessing resources needed to analyze the dataset and determineappropriate facets may be significantly reduced. In some embodiments,however, this step may be skipped, and the entire dataset may be used.

The dataset and/or its constituent documents may be structured (e.g.,pulled from a relational database), semi-structured (fielded withvalues), or unstructured. Representative examples include a musiccatalog in which songs and albums have attributes such as artist, title,length, genre, and release date; a recipe collection in which recipesare associated with a type of cuisine, main ingredients, cooking styleand/or a holiday; travel information that may be organized bydestinations, prices, and include articles by authors or publications;regulatory documents that include product and part codes, machine types,expiration dates, filing dates and submission data; and images that maybe tagged with the name of an artist, date, style, type of image,artistic movement, major colors, theme, etc. In each case, a facetrecommendation engine analyzes the data (or, in some cases a definedsubset of the data) and computes term frequencies and/or distributions(STEP 230) to determine potential facets that may be used to cluster thedata or documents into meaningful classifications. Based on the computedfrequencies, one or more fields or data values are selected as datafacets.

In general, a field is a good candidate for use as a facet if a largepercentage (e.g., >95%) of the documents include a value for the field,since using fields with a lower population percentage can result in asignificant amount of data being ignored, and therefore not included inthe search results. Furthermore, the field should contain a relativelysmall number of terms (as compared to the total number of documents orrecords being indexed). As an example, a field having between 10 and 50values for a dataset containing 1000-5000 items is a good candidate fora data facet. The values in the dataset need not have been distributedevenly or according to a predictable pattern, and in fact if a smallnumber of the values represent a high percentage of the items, the fieldmay be an even stronger candidate for use as a facet. Furthermore, it ispreferable for the fields used as facets to be mutually exclusive—e.g.,they do not overlap and are not correlated with each other—and thevalues of one field should not be discernible or predictable from valuesin other fields.

Typically, date fields and numeric fields (e.g., prices) are goodcandidates for facets. However, fields that contain highly uniquenumbers (e.g., SKUs, ISBNs, SSNs, etc.) are usually poor candidates forfacets, as there is no discernable logic for grouping products,documents or records based on these numbers. As such, the system may, insome cases, identify and reject those facets that represent ID-type datahaving only one or two items in each (or some high percentage,e.g., >95%) of the groupings.

The grouping of numeric values need not be linear. In some cases,especially with products exhibiting high price variability, otherclassifications may be more beneficial. For example, when presentingmemorabilia in an online auction, the prices may range from a fewdollars for common merchandise (e.g., pins or hats that were produced ingreat numbers) to tens of thousands for one-of-a-kind, autographed,limited-edition paraphernalia (e.g., signed artwork, mint-conditioncoins, etc.). In these cases, the ranges may be logarithmic (or somecombination of linear and logarithmic) such that the price facet ispresented as $0-$10; $10-$100; $100-$1,000; $1,000-$5,000; and >$5,000.

While many fact groupings that include numeric ranges may be logarithmic(e.g., 1-10, 10-100, and 100-1000) or linear, other implementationscompute ranges by dividing the actual population of data values into“bins” of equal (or approximately equal) numbers of items. This approachis especially useful when values “clump” together. Using this methodallows for the detection of outliers by statistical testing or simply bydetecting empty bins adjacent to the top and/or bottom bin, where theextreme bin is smaller than a configurable percentage (e.g., 5%) of thetotal values. For example, if the linearly spaced bins from 0 to 1000contain 1, 0, 0, 0, 100, 0, 0, 0, 0, and 1 values, and the middle bincontains values ranging from 500 to 600 (min and max), binscorresponding to “less than 500”, “500-510”, . . . , 590-600”, and“greater than 600” may be created.

Once a set of fields has been identified as potential facets, the abovecriteria are used to determine which fields are “good” facets (STEP240). In one example, each field may be scored and/or ranked accordingto the number of values in the field, the distribution of the valuesacross the entire dataset, the frequency the field is included in asearch, etc. If the analysis is performed offline, recommended facetscan be determined for an entire repository and the ranked fields thendisplayed to a system designer or programmer using afacet-recommendation user interface, thus facilitating the selection offacets from the set of recommended facets. In some instances, the userinterface also allows the designer to reorder facets if, for example,the ordering and/or placement is deemed to be important. The facetrecommendation process may also be performed for a single query (or setof queries) such that the presentation of the search interface includesonly those facets deemed highly relevant to the current (or fairlyrecent) search log.

If the process is implemented online, the fields may be dynamicallyranked using the dataset as a reference. In some cases, a subset of thedataset (e.g., the 500 most requested documents, the 100 most recentlyadded documents, etc.) may be used to determine the potential facets.The recommended facets are then supplied to a web-design applicationusing, for example, XML format (or other markup language) with eachfacet being represented using a unique tag. As a result, web forms maybe created automatically, using the dynamically created facets ascategories for documents as presented to the users (STEP 250). Similarto offline mode, the facets may be determined based on an analysis ofthe current query (by, for example, parsing the query string intocomponent terms and searching the data store for the terms) or recentqueries. An example of an XML listing of facets and facet values isillustrated in FIG. 3.

In each implementation, query logs may be included in the analysis tocapture user interactions with the dataset. For example, if userscontinually submit queries based on processor speed or operating system(which may not be immediately apparent as important distinguishingfactors), these fields may be added as facets, even though the initialanalysis indicated they would be poor facets. As a result, fields thatotherwise would be overlooked can become important data facets forsubsequent searching and retrieval. In this manner, a feedback loop maybe used to capture the ongoing performance of the current facet set.Facet performance may be measured based on, for example, the frequencywith which queries are submitted using the facet, the percentage oftotal queries using the facet, the percentage of queries submitted usingthe facet that are not immediately followed by other queries (i.e., itis likely that the result included the document or product the user waslooking for) as well as other factors. Facets may then be added orremoved based on the feedback.

Similar to limiting the sample of documents used to determine thefacets, one or more subsets of query logs may also be identified andused to select (or help select) data facets. For example, more recentqueries (e.g., those submitted in the past week) may provide greaterinsight into current search trends, and therefore be used exclusively.In other cases, statistical samplings may be used from different timeperiods, days of the week, seasons, etc. to obtain an accuraterepresentation of how users interact with the dataset. A large set ofsearch queries submitted in the weeks leading up to Christmas may beselected to identify data facets relating to toys, for example.

Referring to FIG. 4, a system 410 for implementing the techniquesdescribed above includes a facet recommendation engine 415 and adata-storage module 420. In some embodiments, the system includes aninterface-generation module. The facet recommendation engine 415provides the application processing component for determining desirabledata facets as described above. In one embodiment, the facetrecommendation engine 415 includes programming instructions forevaluating large amounts of data and documents, calculating field andvalue distributions and ranges and recommending which fields to use asdata facets. The engine is preferably implemented on one or more serverclass computers that have sufficient memory, data storage, andprocessing power and that run a server class operating system (e.g. SUNSolaris, GNU/Linux, MICROSOFT WINDOWS 2000, and later versions, or othersuch operating system). Other types of system hardware and software canalso be used, depending on the capacity of the device, the number ofusers and the amount of data received. For example, the server may bepart of a server farm or server network, which is a logical group of oneor more servers. As another example, there may be multiple serversassociated with or connected to each other, or multiple servers mayoperate independently but with shared data. As is typical in large-scalesystems, application software can be implemented in components, withdifferent components running on different server computers, on the sameserver, or some combination.

The data-storage module 420 (or modules) stores the data and/ordocuments being analyzed by the facet recommendation engine 415 andsubsequently searched. For instance, the data repository may storeinformation relating to products, documents, people, and/or transactionsagainst which users submit search queries. Examples of databases thatmay be used to implement this functionality include the MySQL DatabaseServer by Sun Microsystems, the PostgreSQL Database Server by thePostgreSQL Global Development Group of Berkeley, Calif., and the ORACLEDatabase Server offered by ORACLE Corp. of Redwood Shores, Calif.

In embodiments in which the facets are automatically incorporated intothe web pages, an interface-generation module 430 generates thestructured, tagged source code for integration into the application(s)operating on an application server 440. In implementations in whichusers can manually modify webpage source code to implement newlydiscovered or modified facets, one or more clients 460 may be used toaccess the application server 440 via a web server 450. Suchimplementations may include a design interface for providing therecommended facets to a web design application for implementing therecommendations. The clients 460 are preferably implemented usingsoftware running on a personal or professional grade computerworkstation (e.g., a PC with an INTEL processor or an APPLE MACINTOSH)capable of running such operating systems as the MICROSOFT WINDOWSfamily of operating systems from Microsoft Corporation of Redmond,Wash., the MACINTOSH OSX operating system from Apple Computer ofCupertino, Calif., and various varieties of Unix, such as SUN SOLARISfrom SUN MICROSYSTEMS, and GNU/Linux from RED HAT, INC. of Durham, N.C.(and others). The client 460 can also be implemented on such hardware asa smart or dumb terminal, network computer, wireless device, personaldata assistant, information appliance, workstation, minicomputer,mainframe computer, or other computing device, that is operated as ageneral purpose computer or a special purpose hardware device solelyused for serving as a client in the system.

The client 460 may include client interface software for facilitatingthe review and selection of data facets as determined by the facetrecommendation engine 415, and may be implemented in various forms, forexample, in the form of a Java applet that is downloaded to the clientand runs in conjunction with a web browser. Alternatively, the clientsoftware may be in the form of a standalone application, implemented ina language such as Java, C++, C #, VisualBasic or in nativeprocessor-executable code. In one embodiment, if executing on theclient, the client software opens a network connection to the serverover a communications network and communicates via that connection tothe server.

A communications network 470 connects the clients 460 with the server(s)450, 440. The communication may take place via any media such asstandard telephone lines, LAN or WAN links (e.g., T1, T3, 56kb, X.25),broadband connections (ISDN, Frame Relay, ATM), wireless links, and soon. Preferably, the network can carry TCP/IP protocol communications,and HTTP/HTTPS requests made by the client software and the connectionbetween the client software and the server can be communicated over suchTCP/IP networks. The type of network is not a limitation, however, andany suitable network may be used. Typical examples of networks that canserve as the communications network include a wireless or wiredEthernet-based intranet, a local or wide-area network (LAN or WAN),and/or the global communications network known as the Internet, whichmay accommodate many different communications media and protocols.

The modules described throughout the specification can be implemented inwhole or in part as a software program (or programs) operating on one ormore processors using any suitable programming language or languages(C++, C #, java, Visual Basic, LISP, BASIC, PERL, etc.) and/or as ahardware device (e.g., ASIC, FPGA, processor, memory, storage and thelike).

The invention can be embodied in other specific forms without departingfrom the spirit or essential characteristics thereof. The foregoingembodiments are therefore to be considered in all respects illustrativerather than limiting on the invention described herein.

1-20. (canceled)
 21. A method comprising: receiving a dataset comprisinga plurality of catalog items, each having a plurality of fields, each ofthe plurality of fields associated with a respective product categoryvalue, wherein each product category value identifies a respectivecatalog item of the plurality of catalog items as belonging to aparticular product category of a plurality of product categories;analyzing the dataset to determine, for each field of the plurality offields, a quantity of the plurality of catalog items belonging to eachof the plurality of product categories and a distribution of theplurality of catalog items across the plurality of product categories;selecting a subset of fields from the plurality of fields based on thequantity of the plurality of catalog items belonging to each of theplurality of product categories and the distribution of the plurality ofcatalog items; and displaying, on a user interface, for each field ofthe subset of fields, a respective subset of product categories of theplurality of product categories associated with a respective field,wherein each respective product category of the respective subset ofproduct categories indicates a number of catalog items of the pluralityof catalog items belonging to the respective product category of therespective subset of product categories.
 22. The method of claim 22,comprising: receiving, via the user interface, a user selection of aselected product category of the respective subset of productcategories; and displaying, on the user interface, a correspondingcatalog items of the plurality of catalog items belonging to theselected product category.
 23. The method of claim 21, comprisingranking the plurality of fields based on the quantity of the pluralityof product categories belonging to each of the plurality of productcategories and the distribution of the plurality of catalog items,wherein selecting the subset of fields is based on ranking the pluralityof fields.
 24. The method of claim 21, comprising receiving a queryindicative of a subset of the dataset, wherein analyzing the datasetcomprises analyzing the subset of the dataset to determine the quantityof the plurality of catalog items belonging to each of the plurality ofproduct categories and the distribution of the plurality of catalogitems across the plurality of product categories.
 25. The method ofclaim 21, wherein displaying the respective subset of product categoriescomprises displaying a respective data facet for each field of thesubset of fields.
 26. The method of claim 25, comprising generatingsource code in response to selecting the subset of fields, wherein thesource code comprises the respective data facet for display on the userinterface.
 27. The method of claim 21, comprising receiving a query loggenerated in response to a query associated with the dataset, whereinselecting the subset of fields is based on the quantity of the pluralityof category items belonging to each of the plurality of productcategories, the distribution of the plurality of catalog items, and thequery log.
 28. A system comprising: data storage configured to store adataset comprising a plurality of items and a plurality of fields,wherein each field of the plurality of fields is associated with aplurality of values, and each value of the plurality of values isassociated with a subset of items of the plurality of items; and a facetrecommendation engine communicatively coupled to the data storage,wherein the facet recommendation engine is configured to: retrieve thedataset stored in the data storage; analyze the dataset to determine,for at least one field of the plurality of fields of the dataset, aquantity of the plurality of values and a distribution of the pluralityof items across the plurality of values; select a subset of fields fromthe plurality of fields based on the plurality of values and thedistribution of the plurality of items; and cause a plurality of datafacets to be displayed on a user interface based on the subset offields, wherein the plurality of data facets categorizes the pluralityof items.
 29. The system of claim 28, comprising an interface-generationmodule communicatively coupled to the facet recommendation engine,wherein the interface-generation module is configured to generate sourcecode based on the subset of fields selected by the facet recommendationengine for integration into an application server.
 30. The system ofclaim 29, comprising the application server, wherein the applicationserver is communicatively coupled to the user interface, and theapplication server displays the plurality of data facets based on thesource code.
 31. The system of claim 28, wherein the data storage isconfigured to store a query log associated with a search of the dataset,and the facet recommendation engine is configured to select the subsetof fields from the plurality of fields based on the plurality of values,the distribution of the plurality of items, and the query log.
 32. Thesystem of claim 28, wherein each data facet of the plurality of datafacets is associated with a corresponding plurality of values, eachcorresponding plurality of values is associated with a correspondingsubset of items of the plurality of items, and the facet recommendationengine is configured to: cause the corresponding plurality of values tobe displayed on the user interface; receive a user selection of aselected value of the corresponding plurality of values; and cause thecorresponding subset of items associated with the selected value to bedisplayed on the user interface.
 33. The system of claim 28, whereineach item of the plurality of items comprises a product searchable viathe user interface.
 34. The system of claim 28, wherein the facetrecommendation engine is configured to cause a corresponding pluralityof values associated with each of the plurality of data facets to bedisplayed on the user interface, wherein the corresponding plurality ofvalues is linearly organized, logarithmically organized, or organizedbased on data clusters.
 35. A system comprising: one or more processors;and a memory comprising instructions that, when executed by the one ormore processors, are configured to cause the one or more processors toperform operations comprising: identifying a dataset comprising aplurality of catalog items, each having a plurality of fields, each ofthe plurality of fields associated with a respective product categoryvalue, wherein each product category value identifies a respectivecatalog item of the plurality of catalog items as belonging to aparticular product category of a plurality of product categories;analyzing the dataset to determine, for each field of the plurality offields, a quantity of the plurality of catalog items belonging to eachof the plurality of product categories and a distribution of theplurality of catalog items across the plurality of product categories;selecting a subset of fields from the plurality of fields based on thequantity of the plurality of catalog items belonging to each of theplurality of product categories and the distribution of the plurality ofcatalog items; and displaying, on a user interface, for each field ofthe subset of fields, a respective subset of product categories of theplurality of product categories associated with a respective field,wherein each respective product category of the respective subset ofproduct categories indicates a number of catalog items of the pluralityof catalog items belonging to the respective product category of therespective subset of product categories.
 36. The system of claim 35,wherein the instructions, when executed by the one or more processors,are configured to display each field of the subset of fields based on anumeric value or based on data clusters.
 37. The system of claim 35,wherein the instructions, when executed by the one or more processors,are configured to cause the one or more processors to perform operationscomprising: receiving a search query; and retrieving information fromthe dataset based on a correlation between the search query and thesubset of fields.
 38. The system of claim 35, wherein the instructions,when executed by the one or more processors, are configured to cause theone or more processors to perform operations comprising: identifying asubset of the dataset; and analyzing the subset of the dataset todetermine the quantity of the plurality of category items belonging toeach of the plurality of product categories and the distribution of theplurality of catalog items across the plurality of product categoriesfor each field of the plurality of fields associated with the subset ofthe dataset.
 39. The system of claim 35, wherein the instructions, whenexecuted by the one or more processors, are configured to cause the oneor more processors to perform operations comprising receiving a queryand identifying the dataset based on the query.
 40. The system of claim35, wherein the instructions, when executed by the one or moreprocessors, are configured to cause the one or more processors toperform operations comprising: receiving a plurality of query logsgenerated in response to previous queries submitted against the dataset;and selecting the subset of fields based on the quantity of theplurality of catalog items belonging to each of the plurality of productcategories and the distribution of the plurality of catalog items toreflect the previous queries.